const router = require('koa-router')()
const userService = require('../controllers/mySqlControll.js')

router.prefix('/users')

// 登录接口
router.post('/login', async (ctx, next) => {
  const { username, password } = ctx.request.body
  // console.log(ctx.request.body);

  try {
    const result = await userService.userLogin(username, password)
    // console.log(result);
    // console.log(111);
    if (result.length) {
      let data = {
        id: result[0].id,
        username: result[0].username
      }
      ctx.body = {
        code: '8000',
        data: data,
        msg: '登录成功'
      }
    } else {
      ctx.body = {
        code: '8004',
        data: 'error',
        msg: '账号或密码错误'
      }
    }
  } catch (error) {
    ctx.body = {
      code: '80002',
      data: error,
      msg: '服务器异常'
    }
  }


})

// 注册接口
router.post('/register', async (ctx, next) => {
  const { username, password,nickname} = ctx.request.body
  // console.log(ctx.request.body);
  console.log(nickname);
  if (!username || !password) {
    ctx.body = {
      code: '80001',
      msg: '账号密码或昵称不能为空'
    }
    return
  }

  try {
    const findname = await userService.userFind(username)
    // console.log(findname);
    if (findname.length) {
      ctx.body = {
        code: '80003',
        data: 'err',
        msg: '用户名已存在'
      }
    } else {
      
      await userService.userRegister([username, password,nickname])
        .then(res => {
          console.log(res);
          if (res.affectedRows !== 0) {
            ctx.body = {
              code: '80000',
              data: 'ok',
              msg: '注册成功'
            }
          } else {
            ctx.body = {
              code: '8004',
              data: 'error',
              msg: '注册失败'
            }
          }
        })
    }

  } catch (error) {
    ctx.body = {
      code: '80004',
      data: error,
      msg: '服务器异常'
    }
  }

})

// 获取用户的信息
router.get('/userinformation',async(ctx,next)=>{
  // 这段代码是使用JavaScript编写的，它从上下文对象（ctx）中获取名为"username"的查询参数。
  // 这个查询参数通常用于HTTP请求中，以便在服务器端获取客户端发送的用户名信息。
  const {username} = ctx.query;
  // console.log(ctx.query.username);
  // console.log(username);
  try {
    const data=await userService.findUser(username)
    // console.log(data);
      ctx.body={
        code:'80000',
        data:data,
        msg:'请求成功'
    }
    // ctx.body = '成功获取参数';
  } catch (error) {
    ctx.body={
      code:'8004',
      data:error,
      msg:'服务器异常'
    }
  }

  // console.log(username);
})

// 修改用户的信息
router.post('/changeUserData',async(ctx,next)=>{
  const {username,nickname,password,avatar,signature}=ctx.request.body;
  // console.log(ctx.request.body);

  try {
   const  data=await userService.changeUserData(nickname,password,avatar,username,signature)
      ctx.body={
        code:'8000',
        data:'修改成功',
        msg:'修改成功'
      }
    // console.log(1);
  //  console.log(data);
  } catch (error) {
    ctx.body={
      code:'8004',
      data:error,
      msg:'服务器异常'
    }
  }
})

// 获取用户的原始密码
router.post('/findPassword',async(ctx,next)=>{
  const {username}=ctx.request.body
  // console.log(ctx.request.body);
  try {
    const data=await userService.findPassword(username)  
      ctx.body={
        code:'8000',
        data:data,
        msg:'请求成功'
      }
    
  } catch (error) {
    ctx.body={
      code:'8004',
      data:error,
      msg:'服务器异常'
    }
  }
})

module.exports = router
